模組二|選題與素材庫(Day 6–11) 模組二的最後一天,講一個我不太想寫的東西。 素材庫有一個前端儀表板,可以瀏覽條目、依日期跟情緒標籤篩選。上面有一顆...
模組二|選題與素材庫(Day 6–11) 前四天講素材庫的結構。今天講一則具體的條目,因為它的 commit 序列把一個結構問題完整暴露出來了。 這則條目總...
模組二|選題與素材庫(Day 6–11) 我做了一條把新聞素材整理成 podcast 講稿的自動化產線,前半段是把新聞存成可口播的素材,存進一個幾百則規模的...
模組二|選題與素材庫(Day 6–11) 我做了一條把新聞素材整理成 podcast 講稿的自動化產線,素材庫裡目前有 438 則資料,每一則都該照我訂的欄...
模組二|選題與素材庫(Day 6–11) 我做了一條把新聞素材整理成 podcast 講稿的自動化產線,素材庫裡目前有 438 則資料。為了讓每一則都能直接...
模組二|選題與素材庫(Day 6–11) 模組一講產線的形狀,從今天開始進裡面。第一站是最前端:新聞要怎麼存,才能直接拿來口播。 我的答案是一個 438 則...
模組一|為什麼不做全自動(Day 1–5) 模組一的最後一天,來算帳。 前四天講的都是「哪裡不能自動」。今天講反面:能自動的地方,到底省了多少。 這一篇會比...
模組一|為什麼不做全自動(Day 1–5) 昨天講了五道閘門各自想擋什麼。那份 27 行的文件裡,給出的理由只有一句話: 這個流程每一輪都要吃進不可信的外...
模組一|為什麼不做全自動(Day 1–5) 我做一個中文新聞 podcast,上架不到一年、五十集以上,從選題、腳本、剪輯、封面到發布文案,每一步都有 AI...
模組一|為什麼不做全自動(Day 1–5) 昨天說這條產線每一步都有 AI,只有錄音跟發布是我按的。今天把整條線攤開,讓你看清楚那五道閘門實際站在哪裡。 先...
模組一|為什麼不做全自動(Day 1–5) 先給你三個數字,全部是我自己跑指令量出來的: 上架不到一年,五十集以上。 兩個 repo 加起來 1,513 個...
我在這篇文章中,分享如何藉由NotebookLM,製作一段討論如何將台灣鹿林天文台的研究主題,融入到高中天文教學活動設計的podcast音檔。你們對哪些天文主...
今天會講到的是,除了抓取資料的邏輯之外,要如何可以把這個過程自動化呢?在經過一段時間的研究後,除了常見的土砲 cron job 的方式觸發 webhook 的...
接下來幾天會把基本的 API 開發做到一個階段。但這之前,除了測試用的資料之外,我們會需要真實的 Podcast 資料,所以我們今天就開始來實作如何定時更新的...
今天是第20天,不知不覺已經要過了2/3的進度了呢前兩天串Zapier不知道會不會有點太需要嘗試操作而比較複雜呢?那今天就來推薦一個非常簡單可以和Notion結...
這個系列開始我們先介紹了 RSS feed 裡面的內容和不同平台的格式,也了解到要一次處理這麼多又有可能重複的資訊是一件不簡單的事情。接著,我們開始練習用一些既...
發佈 library 的方法真的滿多的,像是 bintray、jcenter 等等的,但中途可能要設定不少東西,打包、上傳、設定路徑之類,那有沒有更簡單的方法?...
這系列的文章不會講完全部 KSP 的實作,畢竟我也還正在實作中,不過實作的方向應該是跟前幾篇講的差不多,只是換一個 annotation processor 的...
檢查 gradle 版本 把 gradle build script 改成 KTS 之後,我們可以先確認一下現有的 project gradle 的版本,最好是...
就在我們用 KAPT 開發完這個 RSS library 後幾個月 KSP 就發佈了! KSP 的全名是 Kotlin Symbol Processing ,是...
Reader 是我們 Android library 裡面最外層的 API ,要測試它要先考慮它有跟那些元件作互動,以下列出了它有互動的元件: ktRssR...
接下來的測試將會需要用到 mocking 的 library ,在 Android 大家比較常用的是 MockK 和 Mockito 。這篇要介紹的是 Mock...
這篇會講解怎麼直接用 jUnit 來測試 parser 和 Android 環境的 parser ,接續上一篇,我們現在已經準備好了 RSS feed 的測試案...
規劃測試方式 測試是寫 library 很重要的一環,因為我們要確保自己的程式碼有一個基本的品質,測試是絕對不能馬虎的。測試 Parser 要分成兩個部分來看,...
上篇提到了 parser generator 在產生程式碼的時候,可以用四個步驟去拆解裡面的資訊並產生程式碼,我們現在來看一下範例吧! 進入範例之前,我們也複...
上一篇我們講解怎麼產生目標 parser 的 parse 方法,這篇來講解 generator 的內部結構,這會用到上篇提到的 getParseFuncSpec...
KotlinParserGenerator 我們先從 kotlin 的 parser 講起,這邊會順便帶到一些 KotlinPoet 的進階用法。我們目標是讀取...
Logger 在 compile time 的時候,不像我們一般再開發的時候很容易的去 log 一些我們要的資訊,這邊我們必須要透過 processor 提供的...
上一篇我們有提到用 KAPT 參數去呼叫 純 Kotlin 和 Android 的 code generator ,這篇要延續這個主題,繼續來講一下會怎麼樣去呼...
接續上一篇的 annotation processor 實作,我們的 annotation processor 如果有需要分平台產生不同 parser 的話,可...